package com.example.demo.day0224;

/**
 * 在一个类中可以创建多个内部类
 *
 */
public class Parcel {
    int i;
    public int z;
    private int k;
    class H {
        int s;
        public void set() {//内部类可以有自己的属性和方法
            this.s = 10;
            System.out.println(this.s);
        }
        public void setParcelFileds() {
            Parcel.this.i = 1;
            Parcel.this.z = 2;
            Parcel.this.k = 3;
        }
    }
    static class B{//如果内部类是satic（静态的），就不能使用外部类的非static的成员,其它内部类有封闭性，不能被调用
    }
    abstract class C{//内部类可以是抽象类
    }
    class D extends C{//内部类也可以继承其他内部类
    }

    public void setInfo(){
        new H().setParcelFileds();//外部类调用自己的内部类的方法得先new内部类的对象
    }
    public void showInfo() {
        System.out.println(this.i);
        System.out.println(this.z);
        System.out.println(this.k);
    }
    public static void main(String[] args) {
        Parcel p=new Parcel();
        p.setInfo();
        p.showInfo();
    }
}
